“Color management” is a term commonly used in computer environments to describe a controlled conversion between the colors of various color-generating or color-rendering devices (e.g., scanners, digital cameras, monitors, TV screens, film printers, printers, offset presses). For purposes of the present disclosure, color-generating or color-rendering devices (i.e., devices that reproduce color) are referred to generally as “color devices.” The primary goal of color management is to obtain a good match for a variety of colors across a number of different color devices, or between digital color images and color devices. For example, color management principles may be employed to help ensure that a video looks virtually the same on a computer LCD monitor and on a plasma TV screen, and that a screenshot from the video printed on paper looks, from a color-content standpoint, like a paused still-frame on the computer LCD monitor or the plasma TV. Color management tools help achieve the same appearance on all of these color devices, provided each device is capable of actually generating the required variety of colors.
To discuss some of the salient concepts underlying color management, some general understanding of human color perception, and some common terminology often used to describe color perception, is required. While a detailed exposition of color science would be overwhelming, a few important aspects are presented below to facilitate a discussion of color management principles in the context of the present disclosure.
A well-known phenomenon of human vision is that humans have different sensitivities to different colors. The sensors or receptors in the human eye are not equally sensitive to all wavelengths of light, and different receptors are more sensitive than others during periods of low light levels versus periods of relatively higher light levels. These receptor behaviors commonly are referred to as “scotopic” response (low light conditions), and “photopic” response (high light conditions). In the relevant literature, the scotopic response of human vision as a function of wavelength λ often is denoted as V′(λ) whereas the photopic response often is denoted as V(λ); both of these functions represent a normalized response of human vision to different wavelengths λ of light over the visible spectrum (i.e., wavelengths from approximately 400 nanometers to 700 nanometers). For purposes of the present disclosure, human vision is discussed primarily in terms of lighting conditions that give rise to the photopic response, which is maximum for light having a wavelength of approximately 555 nanometers.
A visual stimulus corresponding to a perceivable color can be described in terms of the energy emission of some source of light that gives rise to the visual stimulus. A “spectral power distribution” (SPD) of the energy emission from a light source often is expressed as a function of wavelength λ, and provides an indication of an amount of radiant power per small constant-width wavelength interval that is present in the energy emission throughout the visible spectrum. The SPD of energy emission from a light source may be measured via spectroradiometer, spectrophotometer or other suitable instrument. A given visual stimulus may be thought of generally in terms of its overall perceived strength and color, both of which relate to its SPD.
One measure of describing the perceived strength of a visual stimulus, based on the energy emitted from a light source that gives rise to the visual stimulus, is referred to as “luminous intensity,” for which the unit of “candela” is defined. Specifically, the unit of candela is defined such that a monochromatic light source having a wavelength of 555 nanometers (to which the human eye is most sensitive) radiating 1/683 Watts of power in one steradian has a luminous intensity of 1 candela (a steradian is the cone of light spreading out from the source that would illuminate one square meter of the inner surface of a sphere of 1 meter radius around the source). The luminous intensity of a light source in candelas therefore represents a particular direction of light emission (i.e., a light source can be emitting with a luminous intensity of one candela in each of multiple directions, or one candela in merely one relatively narrow beam in a given direction).
From the definition above, it may be appreciated that the luminous intensity of a light source is independent of the distance at which the light emission ultimately is observed and, hence, the apparent size of the source to an observer. Accordingly, luminous intensity in candelas itself is not necessarily representative of the perceived strength of the visual stimulus. For example, if a source appears very small at a given distance (e.g., a tiny quartz halogen bulb), the perceived strength of energy emission from the source is relatively more intense as compared to a source that appears somewhat larger at the same distance (e.g., a candle), even if both sources have a luminous intensity of 1 candela in the direction of observation. In view of the foregoing, a measure of the perceived strength of a visual stimulus, that takes into consideration the apparent area of a source from which light is emitted in a given direction, is referred to as “luminance,” having units of candelas per square meter (cd/m2). The human eye can detect luminances from as little as one millionth of a cd/m2up to approximately one million cd/m2 before damage to the eye may occur.
The luminance of a visual stimulus also takes into account the photopic (or scotopic) response of human vision. Recall from the definition of candela above that radiant power is given in terms of a reference wavelength of 555 nanometers. Accordingly, to account for the response of human vision to wavelengths other than 555 nanometers, the luminance of the stimulus (assuming photopic conditions) typically is determined by applying the photopic response V(λ) to the spectral power distribution (SPD) of the light source giving rise to the stimulus. For example, the luminance L of a given visual stimulus under photopic conditions may be given by:L=K(P1V1+P2V2+P3V3+ . . . )  (1)where P1, P2, P3, etc., are points on the SPD indicating the amount of power per small constant-width wavelength interval throughout the visible spectrum, V1, V2, and V3, etc., are the values of the V(λ) function at the central wavelength of each interval, and K is a constant. If K is set to a value of 683 and P is the radiance in watts per steradian per square meter, then L represents luminance in units of candelas per square meter (cd/m2). 
The “chromaticity” of a given visual stimulus refers generally to the perceived color of the stimulus. A “spectral” color is often considered as a perceived color that can be correlated with a specific wavelength of light. The perception of a visual stimulus having multiple wavelengths, however, generally is more complicated; for example, in human vision it is found that many different combinations of light wavelengths can produce the same perception of color.
Chromaticity is sometimes described in terms of two properties, namely, “hue” and “saturation.” Hue generally refers to the overall category of perceivable color of the stimulus (e.g., purple, blue, green, yellow, orange, red), whereas saturation generally refers to the degree of white which is mixed with a perceivable color. For example, pink may be thought of as having the same hue as red, but being less saturated. Stated differently, a fully saturated hue is one with no mixture of white. Accordingly, a “spectral hue” (consisting of only one wavelength, e.g., spectral red or spectral blue) by definition is fully saturated. However, one can have a fully saturated hue without having a spectral hue (consider a fully saturated magenta, which is a combination of two spectral hues, i.e., red and blue).
A “color model” that describes a given visual stimulus may be defined in terms based on, or in some way related to, luminance (perceived strength or brightness) and chromaticity (hue and saturation). Color models (sometimes referred to alternatively as color systems or color spaces) can be described in a variety of manners to provide a construct for categorizing visual stimuli as well as communicating information to and from color devices regarding different colors. Some examples of conventional color spaces employed in the relevant arts include the RGB (red, green, blue) space (often used in conventional computer environments for “additive” color devices, such as displays, monitors, scanners, and the like) and the CMY (cyan, magenta, yellow) space (often used for “subtractive” mixing devices employing inks or dyes, such as printers). Some other examples of color constructs include the HSI (hue, saturation, intensity) model, the YIQ (luminance, in-phase, quadrature) model, the Munsell system, the Natural Color System (NCS), the DIN system, the Coloroid System, the Optical Society of America (OSA) system, the Hunter Lab system, the Ostwald system, and various CIE coordinate systems in two and three dimensions (e.g., CIE x,y; CIE u′,v′; CIELUV, CIELAB).
For purposes of illustrating some exemplary color systems, the CIE x,y coordinate system is discussed initially in detail below. It should be appreciated, however, that the concepts disclosed herein generally are applicable to any of a variety of color models, spaces, or systems.
One example of a commonly used model for expressing color is illustrated by the CIE chromaticity diagram shown in FIG. 1, and is based on the CIE color system. In one implementation, the CIE system characterizes a given visual stimulus by a luminance parameter Y and two chromaticity coordinates x and y that specify a particular point on the chromaticity diagram shown in FIG. 1. The CIE system parameters Y, x and y are based on the SPD of the stimulus, and also take into consideration various color sensitivity functions which correlate generally with the response of the human eye.
More specifically, colors perceived during photopic response essentially are a function of three variables, corresponding generally to the three different types of cone receptors in the human eye. Hence, the evaluation of color from SPD may employ three different spectral weighting functions, each generally corresponding to one of the three different types of cone receptors. These three functions are referred to commonly as “color matching functions,” and in the CIE systems these color matching functions typically are denoted as x(λ), y(λ), z(λ). Each of the color matching functions x(λ), y(λ), z(λ) may be applied individually to the SPD of a visual stimulus in question, in a manner similar to that discussed above in Eq. (1) above (in which the respective components V1, V2, V3 . . . of V(λ) are substituted by corresponding components of a given color matching function), to generate three corresponding CIE “primaries” or “tristimulus values,” commonly denoted as X, Y, and Z.
As mentioned above, the tristimulus value Y is taken to represent luminance in the CIE system and hence is commonly referred to as the luminance parameter (the color matching function y(λ) is intentionally defined to match the photopic response function V(λ), such that the CIE tristimulus value Y=L, pursuant to Eq. (1) above). Although the value Y correlates with luminance, the CIE tristimulus values X and Z do not substantially correlate with any perceivable attributes of the stimulus. However, in the CIE system, important color attributes are related to the relative magnitudes of the tristimulus values, which are transformed into “chromaticity coordinates” x, y, and z based on normalization of the tristimulus values as follows:x=X/(X+Y+Z)y=Y/(X+Y+Z)z=Z/(X+Y+Z).Based on the normalization above, clearly x+y+z=1, so that only two of the chromaticity coordinates are actually required to specify the results of mapping an SPD to the CIE system.
In the CIE chromaticity diagram shown in FIG. 1, the chromaticity coordinate x is plotted along the horizontal axis, while the chromaticity coordinate y is plotted along the vertical axis. The chromaticity coordinates x and y depend only on hue and saturation, and are independent of the amount of luminous energy in the stimulus; stated differently, perceived colors with the same chromaticity, but different luminance, all map to the same point x,y on the CIE chromaticity diagram. The vertical axis gives an approximate indication of the proportion of green in a given color, while the horizontal axis moves from blue on the left to red on the right.
The curved line 50 in the diagram of FIG. 1 serving as the upper perimeter of the enclosed area indicates all of the spectral colors (pure wavelengths) and is often referred to as the “spectral locus” (the wavelengths along the curve are indicated in nanometers). Again, the colors falling on the line 50 are by definition fully saturated colors. The straight line 52 at the bottom of the enclosed area in the diagram, connecting the blue (approximately 420 nanometers) and red (approximately 700 nanometers) ends, is referred to as the “purple boundary” or the “line of purples.” This line represents colors that cannot be produced by any single wavelength of light; however, a point along the purple boundary nonetheless may be considered to represent a fully saturated color. The area bounded by the spectral locus 50 and the purple boundary 52 represents the full “color gamut” of human vision.
In FIG. 1, an “achromatic point” E is indicated at the coordinates x=y=⅓, representing full spectrum white. Hence, colors generally are deemed to become less saturated as one moves from the boundaries of the enclosed area toward the point E. FIG. 2 provides another illustration of the chromaticity diagram shown in FIG. 1, in which approximate color regions are indicated for general reference, including a region around the achromatic point E corresponding to generally perceived white light.
White light often is discussed in terms of “color temperature” rather than “color;” the term “color temperature” essentially refers to a particular subtle color content or shade (e.g., reddish, bluish) of white light. The color temperature of a given white light visual stimulus conventionally is characterized according to the temperature in degrees Kelvin (K) of a black body radiator that radiates essentially the same spectrum as the white light visual stimulus in question. Black body radiator color temperatures fall within a range of from approximately 700 degrees K (generally considered the first visible to the human eye) to over 10,000 degrees K; white light typically is perceived at color temperatures above 1500-2000 degrees K. Lower color temperatures generally indicate white light having a more significant red component or a “warmer feel,” while higher color temperatures generally indicate white light having a more significant blue component or a “cooler feel.”
FIG. 3 shows a lower portion of the chromaticity diagram of FIG. 2, onto which is mapped a “white light/black body curve” 54, illustrating representative CIE coordinates of a black body radiator and the corresponding color temperatures. As can be seen in FIG. 3, a significant portion of the white light/black body curve 54 (from about 2800 degrees K to well above 10,000 degrees K) falls within the region of the CIE diagram generally identified as corresponding to white light (the achromatic point E corresponds approximately to a color temperature of 5500 degrees K). As discussed above, color temperatures below about 2800 degrees K fall into regions of the CIE diagram that typically are associated with “warmer” white light (i.e., moving from yellow to orange to red).
The CIE chromaticity diagram may be used to evaluate a given color device's capability for reproducing various colors (i.e., specify an overall range of colors that may be generated or rendered by the device). While the entirety of the CIE chromaticity diagram represents the full color gamut of human vision, color devices generally are only able to reproduce some limited portion of this full gamut. Furthermore, different types of color devices may be configured to reproduce a range of colors that fall within different limited portions of the full gamut. Hence, a given color device typically may be associated with its own limited “device color gamut” on the CIE chromaticity diagram.
To evaluate a device color gamut associated with a given color device, an understanding of how the device reproduces different colors, and how different colors are communicated to and from the device (e.g. a data format for color commands, files, etc.), is helpful. First, it should be appreciated that conventional color devices in a computer environment (e.g., scanners, digital cameras, monitors, TV screens, film printers, printers, offset presses) often treat different perceivable colors in terms of relative amounts of “primaries” by which the device reproduces or categorizes a specific desired color, via additive or subtractive mixing of the primaries.
For example, devices such as TV screens, monitors, displays, digital cameras, and the like reproduce different colors based on additive color mixing principles. Additive color devices often employ red, green and blue primaries; hence, red, green and blue commonly are referred to as “additive primaries.” These three primaries roughly represent the respective spectral sensitivities typical of the three different types of cone receptors in the human eye (having peak sensitivities at approximately 650 nanometers for red, 530 nanometers for green, and 425 nanometers for blue) under photopic conditions. Much research has shown that additive mixtures of red, green and blue primaries in different proportions can create a wide range of colors discernible to humans. This is the well-known principle on which many color displays are based, in which a red light emitter, a blue light emitter, and a green light emitter are energized in different proportions to create a wide variety of perceivably different colors, as well as white light, based on additive mixing of the primaries.
Other devices such as printers typically rely on subtractive mixing principles (e.g., mixing of inks or dyes) and generate different colors based on variants of “subtractive primaries” such as cyan, magenta, yellow, and black. In subtractive mixing, light passes through or reflects off of another medium (e.g., ink on a printed surface, paint on a wall, a dye in a filter) and is absorbed or reflected depending on particular spectral characteristics of the medium. Accordingly, in subtractive devices, different primaries of inks, dyes, gels and filters are employed to generated desired colors, based on one of the primaries or combinations of multiple primaries, that subtract out (absorb) undesired colors and let the desired color pass through.
In terms of the CIE color system, each different primary of a color device may be mapped to a corresponding point on the CIE chromaticity diagram, thereby determining a device gamut, i.e., a region of the diagram that specifies all of the possible colors that may be reproduced by the device. For additive devices employing three primaries, the device gamut is defined as a triangle formed by the x, y chromaticity coordinates corresponding to each of the red, green and blue (RGB) primaries. Printers, whose colors are based on variants of CMYK (cyan, magenta, yellow, black) subtractive primaries, have gamuts whose shape is more complex than a simple triangle, often somewhat pentagonal or hexagonal with additional vertices at the cyan, magenta, and yellow primaries, and generally smaller than gamuts based on RGB additive primaries. Again, any colors inside a device gamut can be reproduced by the device; colors outside the device gamut cannot (such colors are considered “out of gamut” for the device).
To illustrate an exemplary determination of device gamut based on the CIE chromaticity diagram, an RGB additive device, such as a computer monitor, is considered. First, a spectral power distribution (SPD) is obtained for each of the primaries of the device. In many conventional monitors, the SPDs of the primaries are determined in large part by the phosphors used, which often are chosen based on brightness, longevity, low cost and low toxicity (“ideal phosphors”, i.e., with radiant dominant wavelengths located near 650 nanometers, 530 nanometers and 425 nanometers, don't exist). As will become evident in the discussion below, the choice of materials used for device primaries has perhaps the most notable effect on the resulting device gamut, based on the corresponding SPDs of the primaries.
In constructing a device gamut, typically, each of the primary SPDs is considered at a “maximum contribution level” for the primary (e.g., a maximum available radiant power). Thus, in the example of the RGB monitor, a red SPD, a green SPD and a blue SPD are obtained, each at maximum available radiant power. Subsequently, CIE chromaticity coordinates x,y are calculated for each SPD in the manner described above in connection with FIG. 1 (i.e., using the color matching functions to obtain tristimulus values X, Y, and Z, and then normalizing), and the calculated coordinates are plotted as points on the CIE chromaticity diagram.
FIG. 4 illustrates the CIE chromaticity diagram of FIG. 1, onto which are mapped exemplary x,y chromaticity coordinates generally indicative of red, green and blue primaries of a conventional RGB monitor. The resulting three points 60R, 60G and 60B form an enclosed area (i.e., triangle) constituting the device gamut 60 for the monitor. It may be appreciated from FIG. 4 that the exemplary monitor device gamut 60 is quite limited with respect to the full gamut of human vision, in that it maintains a notable distance from the purple boundary 52 and generally excludes a significant portion of the green and cyan regions of the CIE chromaticity diagram.
The particular device gamut 60 shown in FIG. 4 represents a color space commonly referred to in the relevant arts as “sRGB” (or “standard” RGB). The sRGB color space was created cooperatively by Hewlett-Packard and Microsoft Corporation, and is endorsed and employed ubiquitously by many other computer-related color industry participants for both hardware and software purposes relating to color reproduction (it is the defacto standard for the Internet and the Windows operating system). The specific CIE chromaticity coordinates for the sRGB color space are defined as [0.6400, 0.3300] for the red vertex 60R, [0.3000, 0.6000] for the green vertex 60G, and [0.1500, 0.0600] for the blue vertex 60B. A “white point” for the sRGB space, corresponding to a color temperature of approximately 6500 degrees K, also is defined as [0.3127, 0.3290] and labeled as “D65” in FIG. 4 (the sRGB white point is slightly different than the achromatic white point E in FIGS. 1-3, which has CIE x,y coordinates of [0.33, 0.33]).
For purposes of comparison, an exemplary CMYK (cyan, magenta, yellow, black) color space, typically represented by a device gamut for subtractive devices such as printers, also is shown in FIG. 4 as the gamut 62. As discussed above, subtractive devices generally have gamuts whose shape is more complex than a simple triangle. Most four-color CMYK printers have device gamuts generally smaller than the sRGB color space (high quality inkjet printers with more than four colors, typically with the addition of light C and light M, may have somewhat larger gamuts than the gamut 62 shown in FIG. 4).
Various color devices often identify different reproducible colors based on a data format that specifies relative amounts of different primaries. For example, devices employing red, green and blue primaries such as the monitor represented by the sRGB color space shown in FIG. 4 often reproduce different colors based on an [R, G, B] data format, wherein each of the R, G, and B values ranges from zero to some maximum value (representing a “full output” for that primary). For example, in 24-bit RGB color spaces, color is described by three 8-bit bytes, each of which can take on values from zero through 255. Accordingly, a color represented by only the red primary is designated as [255, 0, 0], a color represented by only the green primary is designated as [0, 255, 0], and a color represented by only the blue primary is designated as [0, 0, 255]; other colors are designated in terms of relative amounts of the primaries. In this format, black is designated as [0, 0, 0], and “pure” white (corresponding to the “white point” of a given device) is designated as [255, 255, 255]. Some computer programs utilize 48-bit RGB color that allows values of 0 through 65,536 for each primary color (16 bits/color).
It should be appreciated, however, that the numeric values in any given data format for color have no clear, unambiguous meaning unless they are associated with a particular color space (i.e., a particular gamut). Specifically, for the primary values to have any significance with respect to reproducing a particular color in a given device, each value must be associated with a corresponding vertex of the particular gamut associated with the device or a gamut representing some predetermined (e.g., industry standardized or specified) color space, such as the sRGB color space shown in FIG. 4. Stated differently, using the example of an [R, G, B] format, the same [R, G, B] values associated with two different color gamuts or spaces generally will reproduce different perceivable colors.
To emphasize this concept, an example of a specific transform to map an arbitrary [R, G, B] data set to a specific color space defined on the CIE chromaticity diagram is presented below. This process relates significantly to the CIE tristimulus values determined for each of the different primaries; in essence, it is the specific choice of primaries that determines the color space. In particular, in calculating the x,y chromaticity coordinates for the respective primaries of a given color space (e.g., the points 60R, 60G and 60B shown in FIG. 4), as discussed above in connection with FIG. 1 each primary is associated (via the color matching functions x(λ), y(λ), z(λ)) with a corresponding set of CIE tristimulus values X, Y, and Z. A matrix transformation may be derived, based on the three sets of tristimulus values, to map an arbitrary [R, G, B] data set representing a desired color to a corresponding set of tristimulus values according to:
                                          [                                                                                X                    R                                                                                        X                    G                                                                                        X                    B                                                                                                                    Y                    R                                                                                        Y                    G                                                                                        Y                    B                                                                                                                    Z                    R                                                                                        Z                    G                                                                                        Z                    B                                                                        ]                    ⁡                      [                                                            R                                                                              G                                                                              B                                                      ]                          =                              [                                                            X                                                                              Y                                                                              Z                                                      ]                    .                                    (        2        )            
In Eq. (2), the R-G-B column vector is the data set representing the prescribed relative amounts of the respective primaries to generate a desired color. Each column of the three-by-three transformation matrix represents the tristimulus values for one of the primaries at its maximum possible value in the [R, G, B] data set (e.g., XR, YR, and ZR represent the tristimulus values for the red primary at maximum output, wherein YR represents the maximum luminance from the red primary). In this manner, it is the transformation matrix that defines the particular color space. Finally, the column vector X-Y-Z in Eq. (2) represents the resulting CIE tristimulus values of the desired color corresponding to the arbitrary ratio specified in the [R, G, B] data set, wherein Y represents the luminance of the desired color. Hence, according to the transformation given in Eq. (2) above, any arbitrary color based on relative proportions of the red, green and blue primaries may be mapped to the CIE tristimulus values, which in turn are normalized and mapped to the chromaticity diagram, falling within or along the perimeter of the gamut representing the color space defined by the transformation matrix.
In view of the foregoing, it should be appreciated that the sRGB color space illustrated in FIG. 4 corresponds to a particular transformation (i.e., particular values for the nine matrix elements) operating on an [R, G, B] data set. This particular transformation was based on the primaries found in conventional CRT monitors (dating back to approximately 1996). Vast amounts of software (both professional and personal computer software) assume the sRGB color space for color reproduction; namely, that an image file employing a 24-bit [R, G, B] color data format (i.e., 8 bits/primary), placed unchanged into the buffer of a display or monitor, will display colors predictably based on predetermined combinations of the particular sRGB primaries.
However, the practical reality in computer environments is that, as discussed above, different color devices do not necessarily have device gamuts that are identical or similar to the sRGB color space. One reason for this is that one or more of the red, green and blue primaries in one device may not have exactly or even substantially the same spectral power distribution (and hence corresponding X, Y, Z tristimulus values) as the corresponding red, green and blue primaries of another device, thus leading to different transformation matrices in Eq. (2) above. This means that the same [R, G, B] values may produce notably different colors in different devices that do not share a common color space. Furthermore, different devices may reproduce color based on different primaries, and/or based on different primary mixing techniques; as discussed above, output devices such as printers typically are based on subtractive mixing of CMY(K) primaries.
Dealing with the foregoing situation is referred to as “color management.” Maintaining consistent color appearance in the translation between different color devices and color spaces in many cases is not trivial, but color management techniques generally provide a reasonably sane and practical solution. At present, however, often the most sophisticated color management system is unable to make two color devices with different gamuts display exactly the same set of colors; in most cases, a reasonable approximation is the best available solution.
FIG. 5 illustrates the general concept of color management in terms of a “color-managed workflow” in a conventional computer peripheral environment that includes a scanner, a monitor, a color printer, and one or more color image files. In some exemplary computer environments, computer programs that implement color management concepts often are described as being “ICM-aware,” wherein ICM stands for Image Color Management. ICM standards are maintained by the International Color Consortium (ICC), which was formed in 1993 by a number of computer industry vendors to create a universal color management system that would function transparently across many operating systems and software packages. The ICC specification allows for fidelity of color when color identifiers are moved between applications and operating systems, from the point of creation to final reproduction.
In a color-managed workflow similar to that shown in FIG. 5, the color response of each device and each color image file (i.e., the device gamut or color space defined for the device or image file) is characterized by a file called an “ICC profile.” ICC profiles may exist as “stand-alone” computer files (ICC profiles generally have the extension “.icm,” and in the Windows operating systems are stored in specific directories). ICC profiles also may be embedded as tags within color image files; for example, the image file types TIFF, JPEG, PNG, and BMP are supported by most ICM-aware image editors. The ICC specification divides color devices into three broad classifications: input devices, display devices, and output devices. In the example of FIG. 5, four ICC profiles are illustrated, namely, a scanner ICC profile 72 (input device), an image-embedded ICC profile 74 (e.g., from a digital camera, also an input device) , a monitor ICC profile 76 (display device), and a printer ICC profile 78 (output device).
ICC profiles are configured to relate numeric data specifying a desired color in one color space (e.g., values expressing relative amounts of primaries, such as [R, G, B]), to a corresponding color expressed in a device-independent “Profile Connection Space (PCS)” (also referred to as a “working color space”). The PCSs currently relied upon for ICC profiles include either the CIE-XYZ or CIELAB color spaces. An exemplary PCS common to the computer environment of FIG. 5 is indicated in block 70.
The heart of color management is the translation or “gamut mapping” between devices with different color gamuts and files with different color spaces. In particular, an ICC profile for a color device (e.g., the scanner profile 72, the monitor profile 76, and the printer profile 78) contains data that defines a mapping between the device's color space and the PCS 70. Similarly, an ICC profile for a color image file (e.g., the image-embedded ICC profile 74) contains data that defines a mapping between the color space in which the color image was created and the PCS 70.
From the foregoing, it should be appreciated that the integrity of the mapping data in a given ICC profile determines in significant part the degree of success in color reproduction in a color-managed workflow process. Because colors may be perceived in a wide variety of viewing environments and/or on a wide variety of imaging media, a standard viewing environment for the PCS also is defined in the ICC specification based on the ISO 13655 standard. One of the first steps in profile building involves measuring a set of colors from some imaging media or display; i.e., measuring the primaries that ultimately define the color space for the image or color device. If the imaging media or viewing environment in which the primaries are measured differ from the ICC standard viewing environment defined for the PCS, it is necessary to adapt the calorimetric data for the primaries to the ICC standard (typically, it is the responsibility of the profile builder to do any required adaptation.
A variety of industry vendors provide products and services for facilitating the creation of device and image profiles for color-managed workflow processes. One example of such a vendor is Gretag-Macbeth of Switzerland (see http://www.gretagmacbeth.com). Gretag-Macbeth provides a series of products for reading color from a variety of sources, and creating and editing ICC profiles for such sources, including a variety of monitors (CRT, LCD, laptop displays), digital projectors, digital studio cameras, and RGB, CMYK, Hexachrome, CMYK+Red/Blue and CMYK+Red/Green output devices. Profiles can be edited for fine tuning based on deviations of measured colors from the ICC standard viewing environment. Additionally, “spot colors” representing a variety of vendor-defined colors such as Pantone or Munsell colors, may be defined the in the PCS for reproduction on a target device (to the extent possible based on the target device's gamut). Virtually any color can be scanned from any source to create a color library (e.g., the entire Pantone library), and custom color palettes may be created from scanned sources.
FIG. 6 illustrates a color management source-target gamut mapping process. A “color matching module” (CMM), also sometimes referred to as a “color engine” 80, is a program that uses the data in any two ICC profiles to perform a complete mapping from a color source to a color target. Specifically, the color engine 80 utilizes a source ICC profile (e.g., one of the profiles 72 and 74 shown in FIG. 5) and a target ICC profile (e.g., one of the files 76 and 78 in FIG. 5), both of which are referenced to the PCS 70, to convert source color data 82 to target color data 84 (i.e., perform a direct conversion between the source and target color spaces).
For example, the color engine 80 may receive source color data 82 from a scanner in RGB space and provide target color data for a printer in CMYK space. In so doing, the color engine first converts source color data from the scanner in the form [R, G, B] to the PCS (e.g., CIE x, y coordinates and a Y parameter) based on the data contained in the scanner ICC profile 72. Subsequently, the color engine 80 converts the color as designated in the PCS, based on the data contained in the printer ICC profile 78, to target color data in the form [C, M, Y, K] which is output to the printer. In various implementations, the color engine may accomplish the gamut mappings via interpolation of numeric data stored in tables in the ICC profiles, or through a series of algorithmic transformations acting on the numeric data stored in ICC profiles. A color engine also may be employed to simply recreate one or more colors defined in the PCS on a target output or display color device, based on the target ICC profile for the device. For example, FIG. 6 also illustrates a color library 86 that defines one or more colors in terms of the PCS. A user interface 88 (e.g., a computer graphics user interface or “GUI”) may be utilized to select one or more colors from the color library 86, and the color engine provides corresponding target color data 84 to the target device so as to reproduce (or approximate) one or more selected colors from the color library.
While the format of ICC profiles is defined precisely, the algorithms and processing details performed by the color engine 80 on the ICC profiles are not strictly defined, allowing for some variation amongst different applications and systems employing different color engines. Some examples of color engines found in conventional computer environments include Windows' ICM 2.0, Adobe Photoshop's ACE, and Apple's ColorSync.
In some instances, the mappings performed by a color engine can be quite complex, especially when the source and target color spaces are significantly different. In this situation, a color engine may be configured to perform gamut mapping with one of four “rendering intents” recognized by the ICC standard. Specifically, a given rendering intent determines how colors are handled if they are present in the source color data but are “out of gamut” in the target color space (beyond the color reproduction capability of the target device); for this reason, each rendering intent represents some kind of compromise. FIG. 7 illustrates some of the general concepts underlying rendering intents; there are several nomenclatures used in the industry for various rendering intents, and for the present discussion the standard ICC nomenclature is used.
In “perceptual” rendering, a color engine is configured to perform an expansion or compression when mapping between different source and target color spaces, so as to maintain consistent overall appearance. This rendering intent is generally recommended for processing photographic sources. Via perceptual rendering, low saturation colors are changed very little whereas more saturated colors within the gamuts of both color spaces may be altered to differentiate them from saturated colors outside the smaller gamut color space. Algorithms implementing perceptual rendering can be quite complex. On the right side of FIG. 7, perceptual rendering is conceptually depicted; source and target color spaces are indicated as rectangular blocks, in which the left and right sides of the blocks represent saturated colors and the middle of the blocks represents neutral gray. Perceptual rendering applies the same gamut compression to all images, even when the image contains no significant out-of-gamut colors. Perceptual rendering is mostly reversible, and generally is most accurate in 48-bit color devices.
None of the other three rendering intents is reversible. In “relative colorimetric” rendering, a color engine is configured to reproduce in-gamut colors exactly and clip out-of-gamut colors to the nearest reproducible hue. This type of rendering is conceptually depicted on the left side of FIG. 7. In “absolute calorimetric” rendering, in-gamut colors are reproduced exactly and out-of-gamut colors are clipped to the nearest reproducible hue, sacrificing saturation and possibly lightness. In this type of rendering, on tinted papers, whites may be darkened to keep the hue identical to the original. For example, cyan may be added to the white of a cream-colored paper, effectively darkening the image. Finally, in “saturation rendering,” saturated primary colors in the source are mapped to the closest saturated primary colors in the target, neglecting differences in hue, saturation, or lightness.
In sum, the concept of color management in computer environments has two key features. First, color devices or color images are each associated with a “color management profile” (e.g., an ICC profile) that defines a mapping between a device gamut (e.g., associated with a scanner, printer, monitor, digital camera, etc.) or a color space (e.g., associated with a digital image) and a common “working color space” (e.g., a “profile connection space” or PCS). Second, a color matching module (CMM), or “color engine,” uses the information in the color management profiles to perform a mapping between a source gamut or color space to a target gamut or color space, via the intermediary of the working color space (e.g., the PCS). Some of the challenging details of color management include selecting an appropriate rendering intent implemented by a color engine to achieve the most reasonable color rendition for a given mapping.
While the discussion above regarding color management focused on the CIE XYZ color space as a working color space (profile connection space), it should be appreciated that a variety of color models, color spaces, or color systems may be used as a working color space in a color-managed workflow. For example, in Microsoft Windows and Microsoft Office products, every driver for an input color device makes a color transformation from the color space of the device to sRGB space; for an output device or monitor, the associated driver then makes a color transformation from sRGB space to the color space of the output device. Hence, in the Microsoft implementation of color management, the sRGB space serves as the working color space. Other vendors, such as Apple, implement color management techniques via the ICC specification discussed above, and utilize one of the CIE color systems as a profile connection space. In particular, Apple's ColorSync color engine is fully integrated into the Mac operating system and fully supports ICC standards for managing color.
Also, while the ICC profile specification was discussed as one important component of an exemplary color-managed workflow, it should be appreciated that other color management approaches exist specifying profile formats (e.g., OpenEXR Color Management Proposal, IQA) and design of color matching modules or color engines. Finally, it should also be appreciated that different aspects of color management may be implemented in an operating system, by applications running in an operating system, and/or in color devices themselves.